<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>博客编辑页</title>
    <link rel="stylesheet" href="CSS/common.css">
    <link rel="stylesheet" href="CSS/blog_edit.css">

    <!-- 引入 editor.md 的依赖 -->
    <link rel="stylesheet" href="editor.md/css/editormd.min.css" />
    <script src="js/jquery.min.js"></script>
    <script src="editor.md/lib/marked.min.js"></script>
    <script src="editor.md/lib/prettify.min.js"></script>
    <script src="editor.md/editormd.js"></script>
</head>

<body>
    <!-- 导航栏 -->
    <div class="nav">
        <img src="image/tiger.png">
        <span>用户未登录</span>
        <a href="blog_list.html">主页</a>
        <a href="blog_edit.html">写博客</a>
        <a href="cancel">注销</a>
    </div>

    <form action="blogupdate" style="width: 100%; height: 100%;" method="post">
        <!-- 内容区 -->
        <div class="container-edit">
            <!-- 博客标题 -->
            <div class="blog-title">
                <input type="hidden" name="blogId" class="hid">
                <input type="text" name="title" class="content">
                <input type="submit" value="确认修改" class="ret">
            </div>

            <!-- 引入Markdown编辑器 -->
            <div id="editor">
                <!-- editor.md 编辑器官方介绍,可以使用 textarea 来同步编辑器里输入的数据 -->
                <textarea name="content" style="display: none"></textarea>
            </div>
        </div>
    </form>

    <script>
        function getQueryVariable(str){
            //以=分割字符串
            let vars = str.split("=");
            //vars的第二个元素就是我们需要的值
            return parseInt(vars[1]);
        }
    </script>

    <script>

        //判断是否登录逻辑,同时在服务器那边也会进行判断
        // 判断是否登录逻辑(博客列表、博客详情、博客编辑 都需要先登录，再才能查看并操作)
        function getUserInfo(){
            jQuery.ajax({
                type:'get',
                url:'login',
                success:function(body){
                    //判断body中对象的 userId = 0
                    if(body.username && body.userId > 0){
                        console.log("用户已登录,用户:"+body.username);
                        let userShow = document.querySelector(".nav>span");
                        userShow.innerHTML = "";
                        userShow.innerHTML = body.username;

                        getBlogContentByBlogId();
                        
                    }else{
                        alert("请先进行用户登录!");
                        // 通过 location.assign 可以在 js 中实现页面跳转
                        location.assign('blog_login.html');
                    }
                },
            });
        };

        function getBlogContentByBlogId(){
            //通过博客ID获取整篇博客的内容
            jQuery.ajax({
                type: "get",
                url: "blog",
                data:{
                    "blogId": getQueryVariable(location.search)
                },
                success:function(body){
                    //判断有没有blog对象
                    if(body){
                        let hidden = document.querySelector(".blog-title>.hid");
                        hidden.value = body.blogId;

                        //将数据添加到页面上
                        let res = document.querySelector(".blog-title>.content");
                        // 添加标题内容
                        res.value = body.title;
                        console.log(body.content+"这里是里面");
                        //这样写可以规定执行顺序，请求需要回来之后才能初始化 markdown 编辑器
                        markdownInit(body.content);
                    }else{
                        console.log("获取博客文章失败");
                        alert("获取博客文章失败");
                        location.assign('blog_list.html');
                        return;
                    }
                },
                error:function(body){
                    console.log("请求失败"+body);
                }
            });
        }

        function markdownInit(content){
            // 初始化编辑器
            let editor = editormd("editor", {
                // 这里的尺寸必须在这里设置. 设置样式会被 editormd 自动覆盖掉. 
                width: "100%",
                // 高度 100% 意思是和父元素一样高. 要在父元素的基础上去掉标题编辑区的高度
                height: "calc(100% - 45px)",
                // 编辑器中的初始内容
                markdown:content,
                // 指定 editor.md 依赖的插件路径
                path: "editor.md/lib/",

                // 这里是配和 textarea 来使用，表示可以同步到 textarea 里去
                saveHTMLToTextarea:true,
            });
        }

        getUserInfo();
    </script>
</body>
</html>